package com.itheima.d6_jdk8_time;

import java.time.*;

public class Test3_LocalDateTime {
    public static void main(String[] args) {
        // 0、获取本地日期和时间对象。
        LocalDateTime ldt = LocalDateTime.now(); // 年 月 日 时 分 秒 纳秒


        // 1、可以获取日期和时间的全部信息
        // 年
        int year = ldt.getYear();
        // 月
        Month month = ldt.getMonth();
        // 日
        int dayOfMonth = ldt.getDayOfMonth();
        //一年中的第几天
        int dayOfYear = ldt.getDayOfYear();
        //获取是周几
        DayOfWeek dayOfWeek = ldt.getDayOfWeek();
        //时
        int hour = ldt.getHour();
        //分
        int minute = ldt.getMinute();
        //秒
        int second = ldt.getSecond();
        //纳秒
        int nano = ldt.getNano();

        // 2、修改时间信息：
        // withYear withMonth withDayOfMonth withDayOfYear withHour
        // withMinute withSecond withNano
        LocalDateTime localDateTime = ldt.withHour(3);

        // 3、加多少:
        // plusYears  plusMonths plusDays plusWeeks plusHours plusMinutes plusSeconds plusNanos
        LocalDateTime localDateTime1 = ldt.plusYears(10);
        // 4、减多少：
        // minusDays minusYears minusMonths minusWeeks minusHours minusMinutes minusSeconds minusNanos
        LocalDateTime localDateTime2 = ldt.minusYears(5);

        // 5、获取指定日期和时间的LocalDateTime对象：
        // public static LocalDateTime of(int year, Month month, int dayOfMonth, int hour,
        //                                  int minute, int second, int nanoOfSecond)
LocalDateTime.of(2023,3,28,17,49,55,43232);
        // 6、 判断2个日期、时间对象，是否相等，在前还是在后： equals、isBefore、isAfter
        LocalDateTime now1 = LocalDateTime.now();
        LocalDateTime now2 = LocalDateTime.now();
        LocalDateTime now3 = LocalDateTime.now();
        System.out.println(now1.equals(now2));
        System.out.println(now1.isBefore(now2));
        System.out.println(now1.isAfter(now2));

        // 7、可以把LocalDateTime转换成LocalDate和LocalTime
        // public LocalDate toLocalDate()
        // public LocalTime toLocalTime()
        // public static LocalDateTime of(LocalDate date, LocalTime time)
        LocalDateTime time = LocalDateTime.now();
        LocalTime localTime = time.toLocalTime();
        LocalDate localDate = time.toLocalDate();
        LocalDateTime of = LocalDateTime.of(localDate, localTime);
    }
}
